ToggleButton Example

Course- Android >

Android Toggle Button can be used to display checked/unchecked (On/Off) state on the button.

It is advantageous if client need to change the setting between two states. It can be utilized to On/Off Sound, Wifi, Bluetooth and so forth. 

Since Android 4.0, there is another sort of flip catch called switch that gives slider control. 

Android ToggleButton and Switch both are the subclasses of CompoundButton class.

Android ToggleButton class

ToggleButton class provides the facility of creating the toggle button.

XML Attributes of ToggleButton class

The 3 XML attributes of ToggleButton class.

XML Attribute Description
android:disabledAlpha The alpha to apply to the indicator when disabled.
android:textOff The text for the button when it is not checked.
android:textOn The text for the button when it is checked.

Methods of ToggleButton class

The widely used methods of ToggleButton class are given below.

Method Description
CharSequence getTextOff() Returns the text when button is not in the checked state.
CharSequence getTextOn() Returns the text for when button is in the checked state.
void setChecked(boolean checked) Changes the checked state of this button.

Android ToggleButton Example

activity_main.xml

Drag two toggle button and one button for the layout. Now the activity_main.xml file will look like this:

File: activity_main.xml

<RelativeLayout xmlns:androclass="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    tools:context=".MainActivity" >  
    <ToggleButton  
        android:id="@+id/toggleButton1"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_alignParentLeft="true"  
        android:layout_alignParentTop="true"  
        android:layout_marginLeft="60dp"  
        android:layout_marginTop="18dp"  
        android:text="ToggleButton1"  
        android:textOff="Off"  
        android:textOn="On" />  

    <ToggleButton  
        android:id="@+id/toggleButton2"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_alignBaseline="@+id/toggleButton1"  
        android:layout_alignBottom="@+id/toggleButton1"  
        android:layout_marginLeft="44dp"  
        android:layout_toRightOf="@+id/toggleButton1"  
        android:text="ToggleButton2"  
        android:textOff="Off"  
        android:textOn="On" />  
    <Button  
        android:id="@+id/button1"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_below="@+id/toggleButton2"  
        android:layout_marginTop="82dp"  
        android:layout_toRightOf="@+id/toggleButton1"  
        android:text="submit" />  
RelativeLayout>  

Activity class

Let's write the code to check which toggle button is ON/OFF.

File: MainActivity.java

package com.example.togglebutton;  
import android.os.Bundle;  
import android.app.Activity;  
import android.view.Menu;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.Button;  
import android.widget.Toast;  
import android.widget.ToggleButton;  

public class MainActivity extends Activity {  
    private ToggleButton toggleButton1, toggleButton2;  
    private Button buttonSubmit;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        addListenerOnButtonClick();  
    }  

    public void addListenerOnButtonClick(){  
        //Getting the ToggleButton and Button instance from the layout xml file  
        toggleButton1=(ToggleButton)findViewById(R.id.toggleButton1);  
        toggleButton2=(ToggleButton)findViewById(R.id.toggleButton2);  
        buttonSubmit=(Button)findViewById(R.id.button1);  

        //Performing action on button click  
        buttonSubmit.setOnClickListener(new OnClickListener(){  

            @Override  
            public void onClick(View view) {  
                StringBuilder result = new StringBuilder();  
                   result.append("ToggleButton1 : ").append(toggleButton1.getText());  
                   result.append("\nToggleButton2 : ").append(toggleButton2.getText());  
                //Displaying the message in toast  
                Toast.makeText(getApplicationContext(), result.toString(),Toast.LENGTH_LONG).show();  
            }  
        });  
    }  
    @Override  
    public boolean onCreateOptionsMenu(Menu menu) {  
        // Inflate the menu; this adds items to the action bar if it is present.  
        getMenuInflater().inflate(R.menu.activity_main, menu);  
        return true;  
    }  
}